package org.service.car.activity;

import java.util.ArrayList;

import org.service.car.R;
import org.service.car.hard.code.CategoriaType;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;

public class LocalizacaoFornecedor extends Activity implements OnClickListener {

	private Button btnProcurar;
	private Dialog dialog;
	private TextView btnBorracharia;
	private TextView btnEletrica;
	private TextView btnEmbelezamento;
	private TextView btnFunilaria;
	private TextView btnGuincho;
	private TextView btnLavaRapido;
	private TextView btnLubrificante;
	private TextView btnOficina;
	private TextView btnPosto;
	private ArrayList<Integer> idsCategorias;
	private ArrayList<Integer> idsBackground;
	private static String IDS_CATEGORIAS = "idsCategoria";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_localizacao_fornecedor);

		buscarControles();
		setOnClickListerner();
		idsCategorias = new ArrayList<Integer>();
		idsBackground = new ArrayList<Integer>();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.localizacao_fornecedor, menu);
		return true;
	}

	public void buscarControles() {
		btnProcurar = (Button) findViewById(R.id.btnProcurar);
		btnBorracharia = (TextView) findViewById(R.id.btn_borracharia);
		btnEletrica = (TextView) findViewById(R.id.btn_eletrica);
		btnEmbelezamento = (TextView) findViewById(R.id.btn_embelezamento);
		btnFunilaria = (TextView) findViewById(R.id.btn_funilaria);
		btnGuincho = (TextView) findViewById(R.id.btn_guincho);
		btnLavaRapido = (TextView) findViewById(R.id.btn_lavaRapido);
		btnLubrificante = (TextView) findViewById(R.id.btn_lubrificante);
		btnOficina = (TextView) findViewById(R.id.btn_oficina);
		btnPosto = (TextView) findViewById(R.id.btn_posto);
	}

	private void setOnClickListerner() {
		btnProcurar.setOnClickListener(this);
		btnBorracharia.setOnClickListener(this);
		btnEletrica.setOnClickListener(this);
		btnEmbelezamento.setOnClickListener(this);
		btnFunilaria.setOnClickListener(this);
		btnGuincho.setOnClickListener(this);
		btnLavaRapido.setOnClickListener(this);
		btnLubrificante.setOnClickListener(this);
		btnOficina.setOnClickListener(this);
		btnPosto.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {

		switch (v.getId()) {
		case R.id.btn_borracharia:
			handlerClick(v, R.id.btn_borracharia, CategoriaType.BORRACHARIA);
			break;
		case R.id.btn_eletrica:
			handlerClick(v, R.id.btn_eletrica, CategoriaType.SISTEMA_ELETRICO);
			break;
		case R.id.btn_embelezamento:
			handlerClick(v, R.id.btn_embelezamento, CategoriaType.ESTETICA);
			break;
		case R.id.btn_funilaria:
			handlerClick(v, R.id.btn_funilaria, CategoriaType.CARROCERIA);
			break;

		case R.id.btn_guincho:
			handlerClick(v, R.id.btn_guincho, CategoriaType.GUINCHO);
			break;

		case R.id.btn_lavaRapido:
			handlerClick(v, R.id.btn_lavaRapido, CategoriaType.LAVA_RAPIDO);
			break;

		case R.id.btn_lubrificante:
			handlerClick(v, R.id.btn_lubrificante, CategoriaType.FLUIDOS);
			break;

		case R.id.btn_oficina:
			handlerClick(v ,R.id.btn_oficina, CategoriaType.MOTOR_TRANSMISSAO);
			break;

		case R.id.btn_posto:
			handlerClick(v, R.id.btn_posto, CategoriaType.COMBUSTIVEL);
			break;

		case R.id.btnProcurar:
			procurarFornecedor();
			break;
		}

	}

	private void handlerClick(View view, Integer idButton, CategoriaType type) {

		if (idsBackground.contains(Integer.valueOf(idButton))) {
			idsBackground.remove(Integer.valueOf(idButton));
			((TextView)view).setTextColor(Color.WHITE);
			idsCategorias.remove(type.getId());
		} else {
			idsBackground.add(idButton);
			((TextView)view).setTextColor(Color.RED);
			idsCategorias.add(type.getId());
		}
	}

	private void procurarFornecedor() {
		if (GooglePlayServicesUtil
				.isGooglePlayServicesAvailable(getApplicationContext()) != ConnectionResult.SUCCESS) {
			dialog = GooglePlayServicesUtil.getErrorDialog(
					GooglePlayServicesUtil.GOOGLE_PLAY_SERVICES_VERSION_CODE,
					this, 10);
			dialog.show();
		} else if (idsCategorias.isEmpty()) {
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
			builder.setTitle("Escolha um fornecedor");
			builder.setMessage("Nenhum fornecedor foi selecionado");

			builder.setPositiveButton(android.R.string.cancel,
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface arg0, int arg1) {
							return;
						}
					});
			builder.create().show();

		} else {
			Intent intent = new Intent(getApplicationContext(),
					MapaFornecedores.class);
			intent.putIntegerArrayListExtra(IDS_CATEGORIAS, idsCategorias);
			startActivity(intent);
		}
	}
}
